<?php
/*---------------------------------------------------------------------------*
 * コンポーネント名  : YOSAPARKホームページ設定画面コントローラ
 * 最新バージョン    : v1.0
 * 作成日            : 2012/08/08
 * 担当者            : 野島賢三
 * 内容              : 新規作成
 *【改訂履歴】
 *---------------------------------------------------------------------------*/
App::uses('AppController', 'Controller');
class UserInfoController extends AppController {
	// 使用モデル
	public $uses = array('User','DisplayControll');
	// レイアウト(更新ページ用)
	public $layout = 'update_page';

	// コンポーネント
	public $components = Array('RequestHandler', 'ValidateForm', 'UserInf',
			'Session',
			'Auth' => Array(
					'loginRedirect' => Array('controller' => 'yosaadmin', 'action' => 'index'),
					'logoutRedirect' => Array('controller' => 'yosaadmin', 'action' => 'login'),
					'loginAction' => Array('controller' => 'yosaadmin', 'action' => 'login'),
					'authenticate' => Array('Form' => Array('username' => 'username'))
			)
	);
	/**
	 * Controller呼び出し時に行う共通処理
	 * @see Controller::beforeFilter()
	 */
	public function beforeFilter() {
		parent::beforeFilter();
		/*-----------------------------*/
		/* 最終ログイン年月日を取得し設定する */
		/*-----------------------------*/
		$last_login_ymd = $this->UserInf->getLastLoginYmd();
		$this->set('last_login_ymd', $last_login_ymd);
	}
	/**
	 * 初期表示アクション
	 */
	function index() {
		// ユーザ情報の最初のレコードを取得
		$username = $this->User->find('first');
		// ユーザIDを設定
		$this->set('username', $username['User']['username']);
		// 画面表示設定の最初のレコードを取得
		$display_controll = $this->DisplayControll->find('first');
		// INFORMATIONの表示件数を設定
		$this->set('new_info_limit', $display_controll['DisplayControll']['new_info_limit']);
		// キャンペーン情報の表示件数を設定
		$this->set('campaign_info_limit', $display_controll['DisplayControll']['campaign_info_limit']);
	}

	/**
	 * 変更アクション
	 * @param String $editPattern 変更パターン
	 */
	function edit($editPattern = null) {

		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
			// Requestデータが存在する場合
			if($this->request->data) {
				$error = array();
				$saveFlg = true;
				if ($editPattern == 'editNewInfoLimit') {
					// INFORMATIONの表示件数変更の場合
					if(!$this->DisplayControll->save($this->request->data)) {
						$saveFlg = false;
						$error = array('予期せぬエラーが発生しました。管理者にお問い合わせください');
					}
				} else if ($editPattern == 'editCampaignInfoLimit') {
					// キャンペーン情報の表示件数変更の場合
					if(!$this->DisplayControll->save($this->request->data)) {
						$saveFlg = false;
						$error = array('予期せぬエラーが発生しました。管理者にお問い合わせください');
					}
				} else if ($editPattern == 'editUserInfo') {
					// ユーザ情報変更の場合
					if(!$this->User->save($this->request->data)) {
						$saveFlg = false;
						$error = array('予期せぬエラーが発生しました。管理者にお問い合わせください');
					}
				}
				$result = array ('check' => $saveFlg, 'error' =>$error);
				$this->set('result', $result);
			}
		}
	}

}